/* fade */
.fade-enter-active,
.fade-leave-active {
    transition: opacity 0.3s ease-in-out;
}

.fade-enter-from,
.fade-leave-to {
    opacity: 0;
}

/* fade-slide */
.fade-slide-leave-active,
.fade-slide-enter-active {
    transition: all 0.3s;
}

.fade-slide-enter-from {
    opacity: 0;
    transform: translateX(-30px);
}

.fade-slide-leave-to {
    opacity: 0;
    transform: translateX(30px);
}

/* fade-bottom */
.fade-bottom-enter-active,
.fade-bottom-leave-active {
    transition: opacity 0.25s,
    transform 0.3s;
}

.fade-bottom-enter-from {
    opacity: 0;
    transform: translateY(-10%);
}

.fade-bottom-leave-to {
    opacity: 0;
    transform: translateY(10%);
}

/* fade-scale */
.fade-scale-leave-active,
.fade-scale-enter-active {
    transition: all 0.28s;
}

.fade-scale-enter-from {
    opacity: 0;
    transform: scale(1.2);
}

.fade-scale-leave-to {
    opacity: 0;
    transform: scale(0.8);
}

/* zoom-fade */
.zoom-fade-enter-active,
.zoom-fade-leave-active {
    transition: transform 0.2s,
    opacity 0.3s ease-out;
}

.zoom-fade-enter-from {
    opacity: 0;
    transform: scale(0.92);
}

.zoom-fade-leave-to {
    opacity: 0;
    transform: scale(1.06);
}

/* zoom-out */
.zoom-out-enter-active,
.zoom-out-leave-active {
    transition: opacity 0.1s ease-in-out,
    transform 0.15s ease-out;
}

.zoom-out-enter-from,
.zoom-out-leave-to {
    opacity: 0;
    transform: scale(0);
}

/* 导航栏日历组件动画 */
.fade-calendar-enter-active {
    animation: fadeInDown 0.5s;
}

.fade-calendar-leave-active {
    animation: fadeOutUp 0.5s;
}

/* fade-window */
.fade-window-enter-active {
    animation: slideInDown .5s ease;
}

.fade-window-leave-active {
    animation: backOutDown .8s ease;
}

@keyframes fade-window-in {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

@keyframes fade-window-out {
    0% {
        opacity: 1;
    }
    30% {
        opacity: 0.8;
        left: 30%;
        right: 30%;
    }
    100% {
        opacity: 0;
        left: 100%;
        right: 100%;
        top: 100%;
    }
}

@keyframes jumpAnimation {
    0% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-20px);
    }
    0% {
        transform: translateY(0);
    }
}

@keyframes dockTitleAnimation {
    0% {
        opacity: 0;
        top: 0;
    }
    100% {
        opacity: 1;
        top: -66px;
    }
}

@keyframes loginErrorAnimation {
    0% {
        margin-left: -30px;
    }
    50% {
        margin-left: 30px;
    }
    100% {
        margin-left: 0;
    }
}

@keyframes anims {
    0% {
        top: 0;
    }
    25% {
        top: -15px;
    }
    50% {
        top: 0;
    }
    75% {
        top: -15px;
    }
    100% {
        top: 0;
    }
}

/* 旋转动画 */
@keyframes circle {
    0% {
        transform: rotate(0);
    }
    100% {
        transform: rotate(360deg);
    }
}
